Scrapy 运行多个爬虫
Scrapy 运行多个爬虫
本文所使用的 Scrapy 版本:Scrapy==2.4.0
一个 Scrapy 项目下可能会有多个爬虫,本文陈述两种情况:
1 | d:\Code\demo\search_project |
- 多个爬虫
- 所有爬虫
显然,这两种情况并不一定是等同的。假设当前项目下有 3 个爬虫,分别名为:test、hello、experience,并在项目目录下创建一个 main.py
文件,下面的示例代码都写在这个文件中,项目执行时,在命令行下执行 python main.py
或者在 PyCharm 中把这个脚本文件设置为执行脚本即可。
运行多个爬虫
核心点:使用 CrawlerProcess
代码如下:
1 | from scrapy.crawler import CrawlerProcess |
运行所有爬虫
核心点:使用 SpiderLoader
代码如下:
1 | from scrapy.crawler import CrawlerProcess |
关于 ScrapyCommand
网上有部分文章说到使用 ScrapyCommand
这个类下面的 crawler_process.list()
方法可以得到项目下的所有爬虫名称,但我在最新的官方文档中已经搜索不到 ScrapyCommand
这个类,估计是已经弃用了
其它
如果需要向某个爬虫传递参数,可以在 process.crawl
方法中添加进去,例如:
1 | process.crawl('test', dt='20201120') |
则在 dining
这个爬虫(类)中,可以在 __init__
方法中接收这个 dt
参数。例如:
1 | class Dining(scrapy.Spider): |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 quanlook!